package edu.upc.clase.demo.service.impl;

import edu.upc.clase.demo.dao.ClienteDao;
import edu.upc.clase.demo.dao.impl.ClienteDaoImpl;
import edu.upc.clase.demo.entity.Cliente;
import edu.upc.clase.demo.service.ClienteService;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 *
 * @author gise
 *
 */
@Service
public class ClienteServiceImpl implements ClienteService {

    private static Logger log = LoggerFactory.getLogger(ClienteDaoImpl.class);    
    
    @Autowired
    private ClienteDao clienteDao;

    @Override
    public Integer insertar(Cliente cliente) {
        log.info("Creando cliente");
        return clienteDao.insertar(cliente);
    }

    @Override
    public void actualizar(Cliente cliente) {
        log.info("Actualizando usuario");
        clienteDao.actualizar(cliente);
    }

    @Override
    public void eliminar(Cliente cliente) {
        log.info("Eliminando usuario");
        clienteDao.eliminar(cliente);
    }

    @Override
    public List<Cliente> buscarTodos() {
        log.info("Buscando todos los clientes");
        return clienteDao.buscarTodos();
    }

    @Override
    public List<Cliente> buscarPorNombre(String nombre) {
        return clienteDao.buscarPorNombre(nombre);
    }    
    
    @Override
    public Cliente buscar(Integer cocliente) {
        log.info("Buscar cliente por código de cliente");
        return clienteDao.buscar(cocliente);
    }
    
    @Override
    public List<Cliente> buscarDni(String nudni) {
        return clienteDao.buscarDni(nudni);
    }
    
    @Override
    public List<Cliente> buscarMail(String txmail){
        return clienteDao.buscarMail(txmail);
    }

    @Override
    public boolean verificarClave(Cliente cliente, String clave) 
    {
       if (cliente.getTxclave().equals(clave)){
            return true;
       }
       {
           return false;
       }
    }
    
    @Override
    public boolean VerificarObligatorios(Cliente cliente) {
 
        if (cliente.getNudni() == null || cliente.getNudni().isEmpty()) {
            System.out.println("NUDNI");
            return false;
        }
        if (cliente.getNocliente() == null || cliente.getNocliente().isEmpty()) {
            System.out.println("NOCLIENTE");
            return false;
        }
        if (cliente.getTxmail() == null || cliente.getTxmail().isEmpty()) {
            System.out.println("TXMAIL");
            return false;
        }
        if (cliente.getFefechanacimiento() == null) {
            System.out.println("FECHA");
            return false;
        }
        if (cliente.getTxclave() == null || cliente.getTxclave().isEmpty()) {
            return false;
        }
        if (cliente.getFltipo() == null || cliente.getFltipo().isEmpty()) {
            return false;
        }
        return true;
    }
    /*    @Override
    public Boolean autenticar(String correo,String password) {
        if (correo.contains("@")) {
            Cliente clie = clienteDao.buscar(correo);
            if (clie != null) {
                return clie.getPassword().equals(password);
            }
        }
        return Boolean.FALSE;
    }*/
}